package actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import bean.Aktie;
import bean.CreateAktieFormBean;
import bean.CreateUserFormBean;
import bean.User;
import dao.AktieDAO;
import dao.UserDAO;

public class CreateAktieBestaetigungAction extends Action{

	@Override
	public String execute(HttpServletRequest request, HttpSession s)
			throws Exception {
		
		if(s.getAttribute("createAktieFormBean") != null){
			CreateAktieFormBean createAktieFormBean = (CreateAktieFormBean)s.getAttribute("createAktieFormBean");
			String name = createAktieFormBean.getName();
			String kuerzel = createAktieFormBean.getKuerzel();
			String nominalpreis = createAktieFormBean.getNominalpreis();
			String dividende = createAktieFormBean.getDividende();
			String stueckzahl = createAktieFormBean.getStueckzahl();
			double nominalpreisDouble;
			double dividendeDouble;
			int stueckzahlInt;
			
			try
			{
				stueckzahlInt = Integer.parseInt(stueckzahl);
				nominalpreisDouble = Double.parseDouble(nominalpreis);
				dividendeDouble = Double.parseDouble(dividende);
			}
			catch(NumberFormatException e)
			{
				setApplicationMessage(s, getMessageProperty("angabenNichtKorrekt"));
				return getForwardProperty("createAktie");
			}
	
			if(name.length() > 20){
				setApplicationMessage(s, getMessageProperty("nameZuLang"));
				return getForwardProperty("createAktie");
			}
			if(kuerzel.length() > 10){
				setApplicationMessage(s, getMessageProperty("kuerzelZuLang"));
				return getForwardProperty("createAktie");
			}
			if(nominalpreisDouble < 1 || nominalpreisDouble > 5000){
				setApplicationMessage(s, getMessageProperty("nominalpreis"));
				return getForwardProperty("createAktie");
			}
			if(dividendeDouble < 1 || dividendeDouble > 50){
				setApplicationMessage(s, getMessageProperty("dividende"));
				return getForwardProperty("createAktie");
			}
			if(stueckzahlInt < 1 || stueckzahlInt > 100){
				setApplicationMessage(s, getMessageProperty("stueckzahl"));
				return getForwardProperty("createAktie");
			}
			
			// Anschauen mit Dummer Pascal
			Aktie newAktie = new Aktie(false, nominalpreisDouble, null, name, kuerzel, nominalpreisDouble, dividendeDouble);
			
			if(AktieDAO.getInstance().insertAktieIntoDB(stueckzahlInt, newAktie)){
				s.setAttribute("createAktieFormBean", null);
				setApplicationMessage(s, getMessageProperty("aktieGespeichert") + name);
				return getForwardProperty("createAktie");
			}
			else{
				setApplicationMessage(s, getMessageProperty("unerwarteterFehler"));
				return getForwardProperty("createAktie");
			}
		}
		else{
			setApplicationMessage(s, getMessageProperty("unerwarteterFehler"));
			return getForwardProperty("createAktie");
		}
	}

}
